package com.tarena.lbs.attach.service;

import com.tarena.lbs.attach.entity.AttachFile;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

public interface FileService {
    /**
     * 保存文件
     * @param file 上传的文件
     * @return 文件信息
     * @throws IOException IO异常
     */
    AttachFile saveFile(MultipartFile file) throws IOException;

    /**
     * 删除文件
     * @param fileId 文件ID
     * @return 是否删除成功
     */
    boolean deleteFile(String fileId);

    /**
     * 绑定文件到实体
     * @param fileId 文件ID
     * @param entityType 实体类型
     * @param entityId 实体ID
     * @return 是否绑定成功
     */
    boolean bindFileToEntity(String fileId, String entityType, Long entityId);

    /**
     * 清理过期文件
     */
    void cleanExpiredFiles();
}
